import {User} from '../model/user.js'
import {dbInstance} from '../db/config'
import fs from 'fs'
export class RegController{
  // 返回当前表所有的数据的方法
  async users(){
    return User.findAll()
  }

  // 注册时向表中插入数据时，首先查询是否已存在，如果不存在才插入
  async createUser(payload){
    let {username,password}=payload
    // 1.使用findOrCreate方法，通过where查找已存在就返回created==false,不存在就插入default中的数据
    // const [newUser,created]=await User.findOrCreate({  //数组解构
    //   where:{username},
    //   defaults:{
    //     password
    //   }    
    // })

    // 2.调用register存储过程，记住如果传入的参数是字符串需要打单引号！！！！
    let startTime=Date.now()
    const [res]=await dbInstance.query(`call register('${username}','${password}')`)
    // 记录插入每条数据所花费的时间
    let time=Date.now()-startTime
    fs.appendFile('1.txt',` \n插入花费时间:${time}ms`,err =>{
      console.log(err);
    })
    console.log('注册',res.created,time);
    return res.created

    // created==false代表数据库已经存在同名的username(手机号)
    // console.log("是否原先不存在?",created);
    // newUser.created=created
    // return newUser
  }

  // 重置密码时，首先查询数据库是否有该账号，如果有就替换密码，没有就返回提示信息
  async resetPwd(payload){
    let {username,password}=payload
    const user=await User.findOne({  //数组解构
      where:{username},   
    })
    console.log(user)
    if(user==null){
      return false
    }
    else{
      let res=await User.update({password},{
          where:{username}
        })
        console.log('修改结果',res);
        return true
    }
  }
}